lets_plot.geom_abline

lets_plot.geom_abline(mapping=None, *, data=None, stat=None, position=None, show_legend=None, sampling=None, slope=None, intercept=None, **other_args)

Add a straight line with specified slope and intercept to the plot.

Parameters
  • mapping (FeatureSpec) – Set of aesthetic mappings created by aes() function. Aesthetic mappings describe the way that variables in the data are mapped to plot “aesthetics”.

  • data (dict or DataFrame) – The data to be displayed in this layer. If None, the default, the data is inherited from the plot data as specified in the call to ggplot.

  • stat (str, default=’identity’) – The statistical transformation to use on the data for this layer, as a string.

  • position (str or FeatureSpec) – Position adjustment, either as a string (‘identity’, ‘stack’, ‘dodge’, …), or the result of a call to a position adjustment function.

  • show_legend (bool, default=True) – False - do not show legend for this layer.

  • sampling (FeatureSpec) – Result of the call to the sampling_xxx() function. Value None (or ‘none’) will disable sampling for this layer.

  • slope (float) – The line slope.

  • intercept (float) – The value of y at the point where the line crosses the y axis.

  • other_args – Other arguments passed on to the layer. These are often aesthetics settings used to set an aesthetic to a fixed value, like color=’red’, fill=’blue’, size=3 or shape=21. They may also be parameters to the paired geom/stat.

Returns

Geom object specification.

Return type

LayerSpec

Note

geom_abline() understands the following aesthetics mappings:

  • slope : line slope.

  • intercept : line y-intercept.

  • alpha : transparency level of a layer. Understands numbers between 0 and 1.

  • color (colour) : color of a geometry lines. Can be continuous or discrete. For continuous value this will be a color gradient between two colors.

  • size : lines width. Defines line width.

  • linetype : type of the line. Codes and names: 0 = ‘blank’, 1 = ‘solid’, 2 = ‘dashed’, 3 = ‘dotted’, 4 = ‘dotdash’, 5 = ‘longdash’, 6 = ‘twodash’.

Examples

1
2
3
from lets_plot import *
LetsPlot.setup_html()
ggplot() + geom_abline(slope=0)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import numpy as np
import pandas as pd
from lets_plot import *
LetsPlot.setup_html()
n, m = 10, 3
np.random.seed(42)
ids = np.arange(m).astype(str)
x = np.linspace(0, 1, n)
y = x + np.random.uniform(size=(m, n))
df = pd.DataFrame({'id': np.repeat(ids, n),
                   'x': np.tile(x, m),
                   'y': y.reshape(m * n)})
slope = np.corrcoef(y, x)[0, :-1] * y.std(axis=1) / x.std()
intercept = y.mean(axis=1) - slope * x.mean()
reg_df = pd.DataFrame({'id': ids, 'slope': slope, 'intercept': intercept})
ggplot() + \
    geom_abline(aes(slope='slope', intercept='intercept', color='id'), \
                data=reg_df, size=1, linetype='dashed') + \
    geom_point(aes(x='x', y='y', color='id', fill='id'), \
               data=df, size=4, shape=21, alpha=.5)